home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / gfx / misc / JPEG_Comment.lha / JPEG_+_Comment next >
Text File  |  1995-05-21  |  4KB  |  128 lines

  1. /* $VER: JPEG_+_Comment 1.10 (21.5.95)© Felix C. Coronado
  2. */
  3. ADDRESS "ADPro"
  4. OPTIONS RESULTS
  5.  
  6. /*Change these values to control the size of the "Searching for comments"
  7.   window*/
  8. SrchOutWinX=275
  9. SrchOutWinY=90
  10.  
  11. /*Change these values to control the size of the "Display comments" window*/
  12. ComOutWinX=640
  13. ComOutWinY=198
  14.  
  15. /*If you are low on memory, you might want to make this smaller, but it
  16.   should stay in the range of 2 - 65535*/
  17. BlockSize=65535
  18.  
  19. NL='0A'x
  20. SmoothStat='Off'
  21. Button='On'
  22. DO WHILE rc~=1
  23.  ADPRO_TO_FRONT
  24.  OKAYN '"ADPro JPEG_+_Comment Loader"',
  25.        '"Smoothing '||SmoothStat'"',
  26.         "OK|"||Button||"|Cancel"
  27.  if rc=0 THEN EXIT
  28.  if rc=2 THEN DO
  29.   zz=SmoothStat
  30.   SmoothStat=Button
  31.   Button=zz
  32.  end
  33. END
  34. IF SmoothStat='Off' THEN JPEGOpts=''
  35. ELSE JPEGOpts='SMOOTHING'
  36. ADPRO_TO_FRONT
  37. GETFILE '"Load JPEG File"'
  38. IF rc=10 THEN EXIT
  39. ELSE DO
  40.  FullFileName=ADPro_Result
  41.  zz=LASTPOS('/',FullFileName)
  42.  IF zz=0 THEN zz=INDEX(FullFileName,':')
  43.  FileDir=LEFT(FullFileName,zz)
  44.  FileName=RIGHT(FullFileName,LENGTH(FullFileName)-zz)
  45.  IF FileDir~='/' & RIGHT(FileDir,2)~='//' & RIGHT(FileDir,1)='/' THEN FileDir=LEFT(FileDir,LENGTH(FileDir)-1)
  46.  IF OPEN(File,FullFileName,R) THEN DO
  47.   IF READCH(File,4)='FFD8FFE0'x & RIGHT(READCH(File,6),4)='JFIF' THEN DO
  48.    SET_ADPRO_PUBLIC
  49.    ADProScrn=adpro_result
  50.    SET_ADPRO_MODE
  51.    ScreenWidth=WORD(ADPRO_RESULT,2)
  52.    ScreenHeight=WORD(ADPRO_RESULT,3)
  53.    IF OPEN(CON,'con:'||TRUNC((ScreenWidth-SrchOutWinX)/2)||'/'||TRUNC((ScreenHeight-SrchOutWinY)/2)||'/'||SrchOutWinX||'/'||SrchOutWinY||'/ADPro JPEG_+_Comment Loader/NOSIZE/SCREEN '||ADProScrn,'W') THEN DO
  54.     Comment=''
  55.     CALL WRITECH(CON,'1B5B316D'x||'File: '||'1B5B306D'x||FileName||NL||,
  56.                      '1B5B316D'x||'Smoothing: '||'1B5B306D'x||SmoothStat||NL||,
  57.                       NL||,
  58.                      'Searching for comments...'||NL||,
  59.                       NL||,
  60.                      'Ctrl-d to stop')
  61.     SIGNAL ON BREAK_D
  62.     BlockNum=0
  63.     SearchVar=''
  64.     ComNum=0
  65.     StartPos=SEEK(File,10,'C')
  66.     DO WHILE ~EOF(File)
  67.      BlockNum=BlockNum+1
  68.      SearchVar=RIGHT(SearchVar,1)||READCH(File,BlockSize-1)
  69.      IF INDEX(SearchVar,'FFFE'x)~=0 THEN DO
  70.       ComNum=ComNum+1
  71.       ComLengthPos=StartPos+(BlockNum-1)*(BlockSize-1)+INDEX(SearchVar,'FFFE'x)
  72.       CALL SEEK(File,ComLengthPos,'B')
  73.       ComLength=C2D(READCH(File,2))-2
  74.       Comment=Comment||NL||,
  75.                NL||,
  76.               '1B5B316D'x||'Comment '||ComNum||':'||'1B5B306D'x||NL||,
  77.                STRIP(COMPRESS(READCH(File,ComLength),'0D'x),'B','0A'x)
  78.       BlockNum=0
  79.       SearchVar=''
  80.       StartPos=SEEK(File,0,'C')
  81.      END
  82.     END
  83.     SIGNAL OFF BREAK_D
  84.    END
  85.   END
  86.   ELSE DO
  87.    ADPRO_TO_FRONT
  88.    OKAY1 'Error During Load'||NL||,
  89.          'Not A JPEG File'
  90.    EXIT
  91.   END
  92.  END
  93.  ELSE DO
  94.   ADPRO_TO_FRONT
  95.   OKAY1 'Error opening file'||NL||,
  96.         '"'||FullFileName||'"'
  97.   EXIT
  98.  END
  99. END
  100.  
  101. BREAK_D:
  102. SearchVar=''
  103. CALL CLOSE(File)
  104. CALL CLOSE(CON)
  105. IF Comment~='' THEN DO
  106.  ADPRO_TO_FRONT
  107.  IF OPEN(CON,'con:'||TRUNC((ScreenWidth-ComOutWinX)/2)||'/'||TRUNC((ScreenHeight-ComOutWinY)/2)||'/'||ComOutWinX||'/'||ComOutWinY||'/ADPro JPEG_+_Comment Loader/CLOSE/WAIT/SCREEN '||ADProScrn,'W') THEN DO
  108.   CALL WRITECH(CON,'1B5B316D'x||'File: '||'1B5B306D'x||FullFileName||NL||,
  109.                    '1B5B316D'x||'Smoothing: '||'1B5B306D'x||SmoothStat||,
  110.                     Comment)
  111.   CALL CLOSE(CON)
  112.  END
  113. END
  114. LFORMAT 'JPEG'
  115. IF rc=10 THEN DO
  116.  ADPRO_TO_FRONT
  117.  OKAY1 'Error: Loader not found'||NL||,
  118.        '"Loaders2/JPEG"'
  119.  EXIT
  120. END
  121. LOAD '"'FullFileName'"' JPEGOpts
  122. IF rc=10 THEN DO
  123.  ADPRO_TO_FRONT
  124.  OKAY1 'Error loading file'||NL||,
  125.        '"'||FullFileName||'"'
  126. END
  127. LFORMAT 'JPEG_+_Comment'
  128.